import Config from './config2.js'
import Util from './util2';
import Config3 from './config3.js';
let App = getApp();
export default function(obj) {
  let parameter = {
    url: "",
    type: "GET",
    dataType: "json",
    headers: {
      "Content-type": 'application/json' , //"application/x-www-form-urlencoded"
    },
    data: {}
  }
  
  parameter = Object.assign(parameter, obj);
  // parameter.data.appId = parameter.data.appId || 1010;

  //将config文件中的常量整合进来
  parameter.headers = Object.assign(parameter.headers, Config.headers);
  if (parameter.url.indexOf('app/weixin/login') == -1) {
    parameter.headers.token = wx.getStorageSync(Config.authName) || '';
    parameter.headers.userId = wx.getStorageSync(Config.userIdKey) || '';
  }

//判断头类型是否json,如果是则需要转一下参数类型
  if(parameter.headers['Content-type'] === 'application/json'){
    parameter.data = JSON.stringify(parameter.data);
  }
  return new Promise(function(resolve, reject) {
    console.log('发送请求:', parameter.url, '参数:', parameter)
    wx.request({
      header: parameter.headers,
      method: parameter.type,
      url: Config.apiAppName(parameter.url),
      dataType: parameter.dataType,
      data: parameter.data,
      fail: function() {
        reject("失败了");
      },
      success: function ({ data, statusCode}) {

        console.log('后端返回数据:', data)
        if (statusCode == 502 || statusCode== 503){
          wx.showToast({
            title: "服务器升级中，请稍后再试",
            icon: 'none',
            duration: 2000
          })
          reject("失败了");
        }else if (data.status == 500 && data.message=="Token失效，请重新登录") {
          const app = getApp()
          wx.removeStorageSync(Config.housingTokenKey);
          wx.navigateTo({
            url: `/subPackages/pages/HousingActivity/HousingUserTransfer/HousingUserTransfer?activeId=${App.globalData.HousingActivityID}`,
            success: function(res){
              // success
            }
          })
          return
          if (app.globalData.isReturnLogin !== true) {
            app.globalData.isReturnLogin = true;

            //重新登录, 清除缓存token
          
            // console.log('发送请求:',wx.getStorageSync(Config.openIdKey), App.globalData.HousingActivityID,'3')
            //重新登录
            // wx.request({
            //   url: Config3.config.pageDomain+'/sys/login',
            //   method: 'POST',
            //   data: {
            //     openId: wx.getStorageSync(Config.openIdKey),
            //     activeId: App.globalData.HousingActivityID,
            //     type: 1
            //   },
            //   header: {
            //     'content-type': 'application/json'
            //   },
            //   success: function (res) {
            //     if (res.data.success && res.data.result.token) {
            //       wx.setStorageSync(Config.housingTokenKey, res.data.result.token)
            //     }
            //     console.log("重新登录请求成功");
            //     wx.hideLoading();
            //   },
            //   fail() {
            //     console.log("重新登录请求失败");
            //   },
            //   complete() {
            //     console.log("重新登录请求完毕");
            //     resolve(data);
            //     setTimeout(() => {
            //       app.globalData.isReturnLogin = false;
            //     }, 2000)
            //   }
            // });

          }
        } else{
          if(!data || !data.success) {
            console.log('请求接口报错-->', parameter.url, data.msg)
          }
          resolve(data);
        }
      }
    });
  })
}
